Creating multiple cursors for duplicated entry

ABSTRACT

A computer processor receives a selection to create a duplicate cursor in addition to a default cursor. The computer processor determines a first position corresponding to a default cursor, and the computer processor stores information about the first position. The computer processor determines a second position in which to create the duplicate cursor, and the computer processor stores information about the second position. The computer processor receives data input for the first position corresponding to the default cursor. The computer processor recalls the information of the first position and the information of the second position, and the computer processor duplicates the data input, which is received, at the first position and at the second position.

BACKGROUND

The present invention relates generally to the field of computer-baseddata entry, and more particularly, to enabling duplicate data entry atmultiple cursor locations.

Typically, computer users, such as data operators, production supportstaff, data consolidators, or system operators, are required toduplicate data entry at multiple locations, on either the same page of adocument or form, on different pages of the document or form, or ondifferent documents or forms. In many situations, in which the computeruser is not allowed to copy information and paste it into particularsections on the same or a different page, the computer user is forced tore-enter the same information entered in previous sections. Thisre-entry of information is time consuming and inefficient, particularlyin situations where it is essential to quickly enter information.

SUMMARY

According to one embodiment of the present invention, there is provideda method, computer program product, and computer system for multiplecursor duplicate entry. A computer processor receives a selection tocreate a duplicate cursor in addition to a default cursor. The computerprocessor determines a first position corresponding to a default cursor,and the computer processor stores information about the first position.The computer processor determines a second position in which to createthe duplicate cursor, and the computer processor stores informationabout the second position. The computer processor receives data inputfor the first position corresponding to the default cursor. The computerprocessor recalls the information of the first position and theinformation of the second position, and the computer processorduplicates the data input, which is received, at the first position andat the second position.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a functional block diagram illustrating a distributed computerprocessing environment, in accordance with an embodiment of the presentinvention.

FIG. 2 illustrates operational steps of a cursor program operating on anetwork server within the distributed computing environment of FIG. 1,in accordance with an embodiment of the present invention.

FIG. 3A is an example screen display of data entry forms illustratingoperations of cursor program, in accordance to an embodiment of thepresent invention.

FIG. 3B is an example screen display of data entry forms illustratingoperations of cursor program, in accordance to an embodiment of thepresent invention.

FIG. 4 depicts a block diagram of components of a computing devicecapable of operating the cursor program, in accordance with anembodiment of the present invention.

DETAILED DESCRIPTION

Some embodiments of the present invention recognize that computer users,such as data operators, production support staff, data consolidators, orsystem operators, are often required to enter copious amounts ofduplicate information in multiple places within documents or forms;either on the same page or on different pages. In some situations, theuser is not allowed to copy information and paste it into particularsections on the same or different page, and the user is forced tore-enter the same information entered in previous sections. Re-entry ofpreviously entered information is time consuming and inefficient.

Embodiments of the present invention address the need for providing dataentry techniques to replicate data input using multiple cursors on asingle display screen, and if applicable, multiple cursors acrossmultiple screens, substantially simultaneously. For brevity andconvenience, embodiments of the present invention, hereafter,collectively refer to at least, but not limited to, the entry ofcontent, such as text-based content in word processing applications, bykeying in the content or utilizing a speech-to-text application to enterthe text-based content. In some embodiments of the present invention,content may be copied into multiple positions designated by multiplecursors. Embodiments that enable the use of multiple cursors, controlledby a single device to enter and replicate information in the same windowor across multiple windows of a computer, are described below withreference to the Figures.

FIG. 1 is a functional block diagram illustrating distributed computerprocessing environment 100. FIG. 1 provides only an illustration of oneimplementation and does not imply any limitations with regard to theenvironments in which different embodiments are implemented. Manymodifications to the depicted environment can be made by those skilledin the art without departing from the scope of the invention as recitedby the claims.

Distributed computer processing environment 100 includes network server170, which operates cursor program 200. Also included in distributedcomputer processing environment 100 is computing device 110, usable byuser 115. Computing device 110 includes an instance of application 150,which is an application used to connect with network server 170. Alldevices and corresponding applications operated by the devices areinterconnected through network 160.

Network 160 can be, for example, a local area network (LAN), atelecommunications network, a wide area network (WAN), such as theInternet, a virtual local area network (VLAN), or any combination thatcan include wired, wireless, or fiber optic connections. In general,network 160 can be any combination of connections and protocols thatwill support communications between computing device 110, network server170, and other components (not shown) of distributed computer processingenvironment 100, in accordance with embodiments of the presentinvention.

Computing device 110 is operated by user 115. Computing device 110includes an instance of application 150, which enables user 115 toaccess network server 170 via network 160. Computing device 110 enablesuser 115 to access one or more applications from network server 170 thatutilize a cursor to enter information. In one embodiment of the presentinvention, user 115, using application 150, may access a data entryapplication hosted on network server 170 that would benefit fromenabling a duplicate cursor or multiple duplicate cursors in theapplication, to enter information simultaneously in multiple positionsof the application. Enabling duplicate cursors in a data entryapplication allows information entered once by user 115 to be duplicatedfor each instance of a cursor generated. In another embodiment,computing device 110 includes an instance of cursor program 200 (notshown for computing device 110), which enables computing device 110 toperform data entry on local applications and forms, utilizing themultiple cursor point features of cursor program 200.

In some embodiments of the present invention, computing device 110 canbe one of, a web server, a mobile computing device, a laptop computer, atablet computer, a netbook computer, a personal computer (PC), a desktopcomputer, or any programmable electronic device or computing systemcapable of receiving and sending data and performing computer readableprogram instructions capable of communicating with network server 170,via network 160. In other embodiments, computing device 110 canrepresent virtual instances operating on a computing system utilizingclustered computers and components (e.g., database server computer,application server computers, etc.) that act as a single pool ofseamless resources when accessed within distributed computer processingenvironment 100. Computing device 110 may include internal and externalhardware components, as depicted and described further with reference toFIG. 4.

Network server 170 is a web-based server depicted as hosting cursorprogram 200, in accordance with an embodiment of the present invention.Network server 170 can be a web server, a blade server, a mobilecomputing device, a laptop computer, a tablet computer, a netbookcomputer, a personal computer (PC), a desktop computer, or anyprogrammable electronic device or computing system capable of receivingand sending data, via network 160, and performing computer-readableprogram instructions. In another embodiment, network server 170represents a computing system utilizing clustered computers andcomponents (e.g., database server computer, application servercomputers, etc.) that act as a single pool of seamless resources, suchas in a cloud computing environment, when accessed within distributedcomputer processing environment 100. Network server 170 includesinternal and external hardware components, as depicted and describedwith reference to FIG. 4.

Cursor program 200 is an application that enables generation of multiplecursors that are controlled by a single input device. The multiplecursors may be on the same window or across multiple windows, and enableentry of the same information simultaneously at the multiple cursorlocations. In some embodiments of the present invention, while in use toreplicate information across multiple windows, cursor program 200maintains an active state of the selected multiple windows. To keep theselected windows active, cursor program 200 stores a placeholderindicating the initiation of cursor program 200, identifying theposition of the original default cursor, and identifying the position ofselected additional cursors. The placeholder information identifies thepositions of the additional cursors regardless of whether the positionsare in the same window or different windows as the original cursor.Cursor program 200 is depicted as included in network server 170 forexample purposes, however, the depiction in FIG. 1 is not intended tolimit the application and use of cursor program 200. Cursor program maybe hosted and operated by other computing devices, such as computingdevice 110 as described above. The operation of cursor program 200 willbe described in more detail below.

FIG. 2 illustrates the operational steps of cursor program 200,operating on network server 170 within distributed computing environment100, in accordance with an embodiment of the present invention. In someembodiments discussed herein, cursor program 200 is initiated bycomputing devices connecting to network server 170, such as computingdevice 110, accessing an application hosted on network server 170, vianetwork 160. In some embodiments of the present invention, cursorprogram 200 may operate in conjunction with an input device for dataentry on a connected computing device, such as computing device 110.Examples of an input device may be, but are not limited to, a mouse,keyboard directional arrows and keyboard shortcuts, or voice commandapplications.

Cursor program 200 receives the selected option for a duplicate cursor(210). The original cursor has been positioned in a desired startinglocation, and the selection for a duplicate cursor is made. In someembodiments of the present invention, the selection for a duplicatecursor is made by a right click of a mouse to open a drop down menu thatincludes an option to duplicate the cursor. In other embodiments, theselection for a duplicate cursor is received from pre-determinedkeystrokes, such as a keyboard shortcut. In yet other embodiments,cursor program 200 receives the selection for a duplicate cursor from anoption in a word processor application menu bar, or the selectionreceived may be from a voice command application used to speak a commandto duplicate the cursor.

Having received the duplicate cursor selection, cursor program 200determines the position of the original (default) cursor (220). Thestarting location for the original cursor may be on an entry field of afile which may be a form of a word processing application, for example.The form may be displayed in one of several open windows on the user'scomputing device screen, and the default cursor position may be locatedon a field of the form. For example, the user positions the defaultcursor on field 1 of form 1 within window 1 on the display screen ofcomputing device 110 (FIG. 1). Cursor program 200 determines and savesthe location of the original cursor position.

Cursor program 200 responds to the receipt of the duplicate cursorselection by providing messages to move the original cursor to a desiredposition, and receives confirmation of the position for the duplicatecursor (230). In some embodiments of the present invention, cursorprogram 200 generates messages displayed on a computing device screen tomove the original cursor to a location corresponding to the desiredduplicate cursor position, and confirms the original cursor is in thedesired position for the duplicate cursor. Cursor program 200 receivesthe confirmation of the duplicate cursor position. For example, thedesired position for the duplicate cursor may be located on field 10 ofform 1 within window 1, or the duplicate cursor position may be locatedon a different field and form of a second file, for example field 1 ofform 2, located in a second file within window 2 on the display screenof computing device 110. The original cursor is moved to the desiredposition for the duplicate cursor. In some embodiments, the position ofthe duplicate cursor can be indicated by moving the original cursorusing a pointing device, such as, for example, a mouse or thedirectional arrows on a keyboard. In other embodiments, the position ofthe duplicate cursor can be indicated by moving the original cursor byusing keys such as, but not limited to, the tab and shift key, the tabkey, the enter key, the backspace key, or the delete key. In yet otherembodiments, a separate active cursor may be generated, with theoriginal cursor displayed and inactive in its present position, and theseparate active cursor may be positioned by use of a pointing device orkeyboard keys, as described above.

Having received confirmation of the duplicate cursor position, cursorprogram 200 determines if there is a request for an additional duplicatecursor (decision 240). Cursor program 200 enables multiple duplicates ofcursors if requested and, in one embodiment of the present invention,generates a message on the computing device display screen inquiring ifan additional duplicate cursor is requested.

Determining that an additional duplicate cursor is requested, (240,“YES” branch), cursor program 200 receives the request for an additionalduplicate cursor (250). Having received a request for an additionalduplicate cursor, cursor program 200, in one embodiment, may generatemessages, to be displayed on a computing device screen. The messages mayinclude instructions to move the original cursor to the next positioncorresponding to the desired second duplicate cursor position, andinstructions to confirm the original cursor is relocated in the desiredposition for the second duplicate cursor. Cursor program 200 receivesthe confirmation of the duplicate cursor position (return to 230). Forexample, cursor program 200 generates a menu or message on the displayscreen of computing device 110, from which an additional duplicatecursor may be requested. Cursor program 200 receives confirmation fromcomputing device 110 that an additional duplicate cursor is requestedand generates a message on the display screen of computing device 110,for example, which includes instructions to move the original cursor toa second location corresponding to the desired second duplicate cursorposition. Cursor program 200 receives confirmation from computing device110 that the location of the cursor in field 10 of form 1 in window 1 isin the desired position of the requested second duplicate cursor. Cursorprogram 200 determines if an additional duplicate cursor is requested(decision 240) and continues as described above.

For the case in which cursor program 200 determines that no additionalduplicate cursors are requested (240, “NO” branch), cursor program 200creates the duplicate cursor(s) (260). Cursor program 200 recalls theposition information associated with the original cursor's initialposition and the positions of the duplicate cursor(s), and positions acursor at the original cursor's position, and generates a cursor at theposition of the duplicate cursor(s). For example, cursor program 200 maycreate the original cursor at a position on field 1 of form 1, in window1, and create a duplicate cursor at a position on field 10 of form 1, inwindow 1, of computing device 110. Alternatively cursor program may, forexample, create the original cursor at a position on field 1 of form 1,in window 1, and create a duplicate cursor at a position on field 1 ofform 2, in window 2, and create an additional duplicate cursor at aposition on field 1 of form 3, in window 3, of computing device 110.

Having created cursors at the original cursor position and duplicatecursor position(s), cursor program 200 receives input at the originalcursor position and duplicates the input at the duplicate cursor(s)position(s) (270). In some embodiment of the present invention, cursorprogram 200 displays the original cursor and the duplicate cursor(s) intheir respective positions, and enables input to be received andpopulated in the field of the original cursor, and duplicates the inputin the field(s) of the duplicate cursor(s). In other embodiments, theoriginal cursor is displayed in the position corresponding to theinitiation of cursor program 200, which is the original position of theoriginal cursor, and does not display the duplicate cursor(s). However,upon entry of input in the original cursor field, the fieldscorresponding to the positions of the duplicate cursor(s) are populatedwith duplicate entries of the input. In some embodiment of the presentinvention, upon completion of the input at the original cursor position,for example, by receiving an input of the enter key, or selection of acompletion option, cursor program 200 removes the duplicate cursors,with the original cursor remaining in its last position. In otherembodiments, the cursors may be collectively moved to a set of differentfields, by use of the tab key, direction arrows, enter key, backspacekey, or a pre-defined combination or function key, moving all cursorssimultaneously, for example.

Having populated duplicate cursor fields with input, cursor program 200receives confirmation to end duplicate cursor option (280). In someembodiments of the present invention, cursor program 200 may offer anoption to reposition the original default cursor and generate duplicatecursor(s) for a next set of data entry fields (not shown). In the casein which additional duplicate cursors are not requested, cursor program200 receives confirmation to end the duplicate cursor option, and ends.

In some embodiments of the present invention, subsequent to the inputbeing received, an option to close the duplicate cursor may bepresented. The option to end the duplicate cursor may be activated byone of several methods, for example, but not limited to: receiving aselection from a drop down menu option to close the duplicate cursor,opened by a right-click of a mouse; receiving keyed-in input of apre-determined keyboard shortcut to close the duplicate cursor;receiving a selection from an option in a word processor applicationmenu bar to close the duplicate cursor; or receiving a selection toclose the duplicate cursor by a command from a voice commandapplication.

FIG. 3A is an example display screen 305 of data entry formsillustrating operations of cursor program 200, in accordance to anembodiment of the present invention. The example illustrates someembodiments of the operation of cursor program 200 and is not meant tolimit cursor program 200 to a single set of operational steps. Forbrevity and convenience, the example of cursor program 200 isillustrated using product support forms.

FIG. 3A illustrates display screen 305, which is connected to acomputing device, such as computing device 110 (FIG. 1), and depictsform 310, used to collect customer billing information, for example.Display screen 305 also includes a display of form 320, which is used tocollect information for customer product support, menu 330, andduplicate cursor option 335. Form 310 and form 320 are shown to be inthe same window; however, in other embodiments of the present invention,forms 310 and 320 may be in separate windows.

Default cursor 300 is shown positioned in field 315, which is a datafield for a customer name and is also a data field duplicated in form320. In some embodiments of the present invention, default cursor 300 ispositioned in form 310 by a pointing device, such as, a mouse ordirectional arrows on a keyboard, operated by user 115 (FIG. 1) ofcomputing device 110. In other embodiments, default cursor 300 ispositioned by using keys such as, but not limited to, combinations ofkeyboard keys, the tab key, the enter key, the backspace key, or thedelete key. Having positioned default cursor 300, menu 330 is opened andincludes selectable options applicable to form 310 in which defaultcursor 300 is positioned. Menu 330 includes option 335, and selectingoption 335 initiates cursor program 200, which determines and stores thelocation of default cursor 300. In one embodiment of the presentinvention, option 335 is selected by user 115 right clicking a mouseconnected to computing device 110. In other embodiments, option 335 maybe selected by using directional arrows and the enter key, by selectingoptions from a tool bar or menu bar of an application, or by using aspeech recognition application to execute a selection command.Hereafter, reference made to selection of options will be understood toinclude one or a combination of the above mentioned techniques, and oneof ordinary skill in the art will recognize that embodiments of thepresent invention are not limited by the selection technique.

FIG. 3B is an example screen display 305 of data entry formsillustrating operations of cursor program 200, in accordance with anembodiment of the present invention. Screen display 305 illustrates form310, which includes field 315, field 370, and default cursor 300.Display screen 305 also depicts form 320, which includes field 360,field 380, duplicate cursor 350, menu 340, option 345, option 355, andoption 365.

Having selected duplicate cursor (option 335, FIG. 3A), cursor program200 creates duplicate cursor 350. In some embodiments of the presentinvention, duplicate cursor 350 may be created and positioned overlayingdefault cursor 300, with the display of duplicate cursor emphasized, forexample by bolding, highlighting, font size, alternate shape, blinking,motion, or color change. In other embodiments, duplicate cursor 350 isdisplayed on display screen 305 and is emphasized for recognition andlocation by a user. For example, duplicate cursor 350 is presented in acentral position of display screen 305 and is bolded and blinking to aidin recognition and location. Duplicate cursor 350 is active and may bepositioned by use of available cursor placement techniques, for example,a pointing device, such as a mouse, or directional arrows of a keyboard.

Duplicate cursor 350 is active and is moved to a field in whichduplicate entry is desired. Duplicate cursor 350 is positioned in field360, which is a field in form 320 duplicating the data input of field315 of form 310. In some embodiments of the present invention, movingthe position of duplicate cursor 350 from an initial position, andsubsequently leaving duplicate cursor 350 idle, may initiate the displayof menu 340. In other embodiments, a keystroke or mouse click, forexample, may confirm the position of duplicate cursor 350 and displaymenu 340. In still other embodiments, menu 340 is displayed in responseto a user action, such as right clicking a mouse pointer in field 360 inwhich duplicate cursor 350 is positioned. Menu 340 displays options,including option 345, option 355, and option 365. Selection of option345, which indicates that creating duplicate cursors is complete,results in cursor program 200 setting default cursor 300 and duplicatecursor 350 as active in field 315 of form 310, and field 360 of form320, respectively.

In some embodiments of the present invention, additional duplicatecursors may be desired. Menu 340 includes option 355, and when selected,cursor program 200 creates an additional duplicate cursor that can bepositioned in an appropriate data entry field.

Having indicated that creating duplicate cursors is complete byselection of option 345, content is received as input at default cursor300 and is duplicated at duplicate cursor 350. For example, user 115 ofcomputing device 110, keys in text at the position of default cursor 300in field 315 of form 310. As the input from user 115 is received, cursorprogram 200 will display the input at the position of default cursor 300in field 315 of form 310, and substantially simultaneously, cursorprogram 200 duplicates the input at the position of duplicate cursor 350in field 360 of form 320.

In some embodiments of the present invention, the position of activedefault cursor 300 and active duplicate cursor 350 may be advanced tothe next entry field of a form or document, using directional arrows ofa keyboard, or by other keyboard keystrokes or combination ofkeystrokes, such as, but not limited to, the tab and shift key, the tabkey, the enter key, the backspace key, or the delete key. For example,selection of the tab key by user 115 of computing device 110 results inadvancing both active default cursor 300 and active duplicate cursor 350to their respective next data entry field. Default cursor 300 moves fromfield 315 on form 310 to field 370 on form 310. Similarly, duplicatecursor 350 moves from field 360 on form 320 to field 380 on form 320.The default cursor and duplicate cursors are advanced to theirrespective next field of data entry, within their respective forms.

Subsequent to data entry completion, and without need of additionalduplicate cursors, menu 340 is displayed and includes option 365. In oneembodiment of the present invention, menu 340 is opened by user action.In other embodiments, menu 340 may open based on completion of characterinput, and a configured time period transpiring without data entry orcursor movement. Option 365 closes the duplicate cursor functionalityand selection of option 365 results in cursor program 200 restoring anactive state to default cursor 300 and removal of duplicate cursors, andcursor program 200 ending.

FIG. 4 is a block diagram of components of computing device 400, capableof operating cursor program 200 and application 150, in accordance withan embodiment of the present invention. It should be appreciated thatFIG. 4 provides only an illustration of one implementation and does notimply any limitations with regard to the environments in which differentembodiments are implemented. Many modifications to the depictedenvironment may be made.

Server 400, network server 170 (FIG. 1), and computing device 110,include communications fabric 402, which provides communications betweencomputer processor(s) 404, memory 406, persistent storage 408,communications unit 410, and input/output (I/O) interface(s) 412.Communications fabric 402 can be implemented with any architecturedesigned for passing data and/or control information between processors(such as microprocessors, communications and network processors, etc.),system memory, peripheral devices, and any other hardware componentswithin a system. For example, communications fabric 402 can beimplemented with one or more buses.

Memory 406 and persistent storage 408 are computer-readable storagemedia. In this embodiment, memory 406 includes random access memory(RAM) 414 and cache memory 416. In general, memory 406 can include anysuitable volatile or non-volatile computer-readable storage media.

Cursor program 200 and application program 150 are stored in persistentstorage 408 for execution by one or more of the respective computerprocessors 404 via one or more memories of memory 406. In thisembodiment, persistent storage 408 includes a magnetic hard disk drive.Alternatively, or in addition to a magnetic hard disk drive, persistentstorage 408 can include a solid state hard drive, a semiconductorstorage device, read-only memory (ROM), erasable programmable read-onlymemory (EPROM), flash memory, or any other computer-readable storagemedia that is capable of storing program instructions or digitalinformation.

The media used by persistent storage 408 may also be removable. Forexample, a removable hard drive may be used for persistent storage 408.Other examples include optical and magnetic disks, thumb drives, andsmart cards that are inserted into a drive for transfer onto anothercomputer-readable storage medium that is also part of persistent storage408.

Communications unit 410, in these examples, provides for communicationswith other data processing systems or devices, including resources ofdistributed computer processing environment 100. In these examples,communications unit 410 includes one or more network interface cards.Communications unit 410 may provide communications through the use ofeither or both physical and wireless communications links. Cursorprogram 200 and application program 150 may be downloaded to persistentstorage 408 through communications unit 410.

I/O interface(s) 412 allows for input and output of data with otherdevices that may be connected to server 400, network server 170 (FIG.1), and computing device 110 (FIG. 1). For example, I/O interface 412may provide a connection to external devices 418 such as a keyboard,keypad, a touch screen, and/or some other suitable input device.External devices 418 can also include portable computer-readable storagemedia such as, for example, thumb drives, portable optical or magneticdisks, and memory cards. Software and data used to practice embodimentsof the present invention, e.g., cursor program 200 and applicationprogram 150, can be stored on such portable computer-readable storagemedia and can be loaded onto persistent storage 408 via I/O interface(s)412. I/O interface(s) 412 also connect to a display 420.

Display 420 provides a mechanism to display data to a user and may be,for example, a computer monitor.

The programs described herein are identified based upon the applicationfor which they are implemented in a specific embodiment of theinvention. However, it should be appreciated that any particular programnomenclature herein is used merely for convenience, and thus theinvention should not be limited to use solely in any specificapplication identified and/or implied by such nomenclature.

The present invention may be a system, a method, and a computer programproduct. The computer program product may include a computer readablestorage medium or media having computer readable program instructionsthereon for causing a processor to carry out aspects of the presentinvention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

1-7. (canceled)
 8. A computer program product comprising: a computerreadable storage medium having program instructions embodied therewith,wherein the program instructions are executable by a computer processorto cause the computer processor to perform a method comprising:receiving, by a computer processor, input to activate a duplicate cursorin addition to a default cursor; determining, by the computer processor,information descriptive of a first position that corresponds to thedefault cursor; receiving, by the computer processor, information thatis descriptive of a second position that corresponds to the duplicatecursor, wherein the duplicate cursor is generated at the secondposition; receiving, by the computer processor, content as input for thefirst position that corresponds to the default cursor; and duplicating,by the computer processor, the content that is input for the firstposition, at the second position that corresponds to the duplicatecursor.
 9. The computer program product claim 8, wherein the duplicatecursor includes a plurality of duplicate cursors.
 10. The computerprogram product claim 8, wherein the first position of the defaultcursor is located on a first window, and the second position of theduplicate cursor is located on a second window.
 11. The computer programproduct claim 10, wherein the information descriptive of the firstposition includes identification of the first window and the position ofthe default cursor within the first window, and the informationdescriptive of the second position includes identification of the secondwindow and the position of the duplicate cursor within the secondwindow.
 12. The computer program product claim 8, wherein the firstposition that corresponds to the default cursor and the second positionthat corresponds to the duplicate cursor are both located on a firstwindow.
 13. The computer program product claim 8, wherein theinformation descriptive of the first position and the informationdescriptive of the second position includes information regarding thefile of the first position and the file of the second position.
 14. Thecomputer program product claim 8, further comprising: receiving, by thecomputer processor, a selection to generate a second duplicate cursor ata third position, in addition to the default cursor and the duplicatecursor; determining, by the computer processor, the third position thatcorresponds to the second duplicate cursor; and responsive to receivingthe content as input for the first position that corresponds to thedefault cursor, duplicating, by the computer processor, the contentwhich is received as input for the first position, at the third positionthat corresponds to the second duplicate cursor.
 15. A computer systemcomprising: one or more computer processors; one or more computerreadable storage devices; and program instructions stored on thecomputer readable storage devices for execution by at least one of theone or more computer processors, the program instructions comprising:program instructions to receive input to activate a duplicate cursor inaddition to a default cursor; program instructions to determineinformation descriptive of a first position that corresponds to thedefault cursor; program instructions to receive information that isdescriptive of a second position that corresponds to a duplicate cursor,wherein the duplicate cursor is generated at the second position;program instructions to receive content as input for the first positionthat corresponds to the default cursor; and program instructions toduplicate the content that is input for the first position, at thesecond position that corresponds to the duplicate cursor.
 16. Thecomputer system of claim 15, wherein the duplicate cursor includes aplurality of duplicate cursors.
 17. The computer system of claim 15,wherein the first position of the default cursor is located on a firstwindow, and the second position of the duplicate cursor is located on asecond window.
 18. The computer system of claim 17, wherein theinformation descriptive of the first position includes identification ofthe first window and the position of the default cursor within the firstwindow, and the information descriptive of the second position includesidentification of the second window and the position of the duplicatecursor within the second window.
 19. The computer system of claim 15,wherein the first position that corresponds to the default cursor andthe second position that corresponds to the duplicate cursor are bothlocated on a first window.
 20. The computer system of claim 15, furthercomprising: program instructions to receive a selection to generate asecond duplicate cursor at a third position, in addition to the defaultcursor and the duplicate cursor; program instructions to determine thethird position that corresponds to the second duplicate cursor; andresponsive to receiving the content as input for the first position thatcorresponds to the default cursor, program instructions to duplicate thecontent which is received as input for the first position, at the thirdposition that corresponds to the second duplicate cursor.